1. Field of the Invention
The present invention relates to a cluster of networked nodes comprising storage systems, and more particularly to configuration data common to and shared by the cluster of storage systems.
2. Background of the Invention
A storage system typically comprises one or more storage devices into which information may be entered, and from which information may be obtained, as desired. The storage system includes a storage operating system that functionally organizes the system by, inter alia, invoking storage operations in support of a storage service implemented by the system. The storage system may be implemented in accordance with a variety of storage architectures, or storage servers, including, but not limited to, a NAS (network-attached storage) environment, an SAN (storage area network) and a disk assembly directly attached to a client or host computer. The storage devices are typically disk drives organized as a disk array, wherein the term “disk” commonly describes a self-contained rotating magnetic media storage device. The term disk in this context is synonymous with hard disk drive (HDD) or direct access storage device (DASD).
The storage operating system of the storage system may implement a high-level module, such as a file system, to logically organize the information stored on volumes as a hierarchical structure of data containers, such as files and logical units. For example, each “on-disk” file may be implemented as set of data structures, i.e., disk blocks, configured to store information, such as the actual data for the file. These data blocks are organized within a volume block number (vbn) space that is maintained by the file system. The file system may also assign each data block in the file a corresponding “file offset” or file block number (fbn). The file system typically assigns sequences of fbns on a per-file basis, whereas vbns are assigned over a larger volume address space. The file system organizes the data blocks within the vbn space as a “logical volume,” each logical volume may be, although not necessarily, associated with its own file system. The data structures may also be viewed as objects and classes of objects, tables, address structures, and other such structures that may be used in the configuration of the systems.
A known type of file system is a write-anywhere file system that does not overwrite data on disks. If a data block is retrieved (read) from disk into a memory of the storage system and “dirtied” (i.e., updated or modified) with new data, the data block is thereafter stored (written) to a new location on disk to optimize write performance. A write-anywhere file system may initially assume an optimal layout such that the data is is substantially contiguously arranged on disks. The optimal disk layout results in efficient access operations, particularly for sequential read operations, directed to the disks. An example of a write-anywhere file system that is configured to operate on a storage system is the Write Anywhere File Layout (WAFL™) file system available from Network Appliance, Inc., Sunnyvale, Calif.
An NAS system of nodes may be clustered to respond to a client request as a single entity. As used herein, a node is a storage system embodied as a filer that may be configured to operate according to a client/server model of information delivery to thereby allow many clients to access shared resources, such as files, stored on the filer. Sharing of files is a hallmark of an NAS system that is enabled because of its semantic level of access to files and file systems. Storage of information on a NAS system is typically deployed over a computer network comprising a geographically distributed collection of interconnected communication links, such as Ethernet, that allow clients to remotely access the information (files) on the filer. The clients typically communicate with the filer by exchanging discrete frames or packets of data according to pre-defined protocols, such as the TCP/IP (Transmission Control Protocol/Internet Protocol). In addition, each filer in the cluster may communicates exclusively with all the other clustered filers via a network, such as the Internet.
In a client/server model, the client may comprise an application executing on a computer that communicates with the clustered filers over a computer network, such as a point-to-point link, shared local area network, wide area network or virtual private network implemented over a public network, such as the Internet. NAS systems generally utilize file-based access protocols; therefore, each client may request the services of the clustered filers by issuing file system protocol messages (in the form of packets) to the file system over the network identifying one or more files to be accessed without regard to specific locations, e.g., blocks, in which the data are stored on disk.
The following descriptions are with respect to an NAS cluster of filers communicating via an Ethernet and a network switch, but other networked filers may be clustered via FC (Fibre Channel) or an Ethernet adapted to operate as networks. Such protocols and systems are known to those skilled in the art.
In such a cluster there is a significant amount of configuration data associated with the cluster as a whole. This configuration data is “owned” by the cluster as a single entity or an SSI (single entity image). For example, the location of an operating system domain server of a DNS (Domain Name Server) is an example of cluster configuration data. Such data is referred to herein as VSC (Virtual Server Configuration) data. The terms VSC data, configuration data and persistent configuration data may be used interchangeably herein.
There is a need to maintain a persistent set of VSC data in each of the clustered filers or nodes wherein each node has an up-deto-date common copy of the persistent VSC data. This persistent data represents data common to the cluster that, generally, does not change. For example, the common data may be class data, such as a name server class for a number of different servers. Such information may be arranged as a table (class Name Server) with row entries that represent cluster locations of specific name servers. Further, that up-to-date persistent data must be reconciled with “in core” or dynamic memory data. The “in core” data is that data in memory that is accessed by, for example, a request from a client. The persistent data and the “in-core” data are arranged so that any client interacting with the cluster receives information that is up-to-date and independent of which node or nodes in the cluster are active.
An issue is presented in such clustered systems where an administrator may make a change to VSC data in the persistent database. The change must be delivered to each node in the cluster, and each node in the cluster must reconcile or route the changed data to the corresponding “in-core,” or dynamic memory. Note the change herein represent a wide definition to include, at least, modifying existing data, adding new data and/or deleting existing data.